package schemax

import "reflect"

type UnsafeInfo struct {
	Offset uintptr
	Kind   reflect.Kind
}

type Field struct {
	Name string
	//
	Type IType
	// 如果Type=ClassType, 可通过设置{}建立新对象, 否则默认为nil
	// 如果Type=MapType, 可通过设置{}建立新对象, 否则默认为nil
	// 如果Type=BasicType/EnumType, Value为初始值
	Value string
	//
	Comments []string
	//
	Tags map[string]string
	//
	//Unsafe UnsafeInfo
}

func (typ *Field) RefType() string {
	return "field"
}

func (typ *Field) Alias() string {
	if typ.Tags != nil {
		json, has := typ.Tags["json"]
		if has {
			return json
		}

		alias, has := typ.Tags["alias"]
		if has {
			return alias
		}
	}

	return typ.Name
}
